home *** CD-ROM | disk | FTP | other *** search
- #!/bin/python
-
- """
- ToolTesting.py
-
- David Janes
- BlogMatrix
- 2004.02.15
- """
-
- import sys
- import urllib
- import Tool
-
- class ToolTesting(Tool.ToolInterface):
- """
- The interface for your tool. Simply create an instance of this object and Jaeger
- will figure it out.
- """
- def __init__(self):
- Tool.ToolInterface.__init__(self, self.WEBSERVER)
-
- def get_label(self, selected):
- return "Testing"
-
- def get_server(self, path):
- """
- """
- return {
- "/": ( self.serve_root, "" ),
- "/form": ( self.serve_form, "Form Demonstration" ),
- "/cgi": ( self.serve_cgi, "CGI Demonstration" ),
- }.get(path)
-
- def serve_root(self, operations, path, valuemap):
- result = [
- self.text_standard_header(path),
- """
- <p>
- This extension doesn't really do anything useful, except to demonstrate
- how to write extensions to serve web pages.
-
- <ul>
- <li><a href='cgi?url=io&x=y&happy=go-lucky'>CGI Demonstration</a>
- <li><a href='form'>Form Demonstration</a>
- </ul>""",
- self.text_standard_footer()
- ]
- return 200, "text/html", None, result
-
- def serve_form(self, operations, path, valuemap):
- #
- # The 'name' and 'phone' values are persisted through the '*userdata' functions
- #
- name = valuemap.get("name")
- if name == None:
- name = operations.get_userdata("name", "")
- else:
- operations.set_userdata("name", name)
-
- phone = valuemap.get("phone")
- if phone == None:
- phone = operations.get_userdata("phone", "")
- else:
- operations.set_userdata("phone", phone)
-
- result = [
- self.text_standard_header(path),
- """\
- <h2>Form Demonstration</h2>
- <p>
- The values the user enters into this form are persistent, even across multiple sessions
- of Jaëger!
-
- <p>
- <form method="POST">
- <table>
- <tr>
- <td align="left">Name:</td>
- <td><input type="text" name="name" value=\"""" + self.escape_html(name) + """"></td>
- </tr>
- <tr>
- <td align="left">Phone:</td>
- <td><input type="text" name="phone" value=\"""" + self.escape_html(phone) + """"></td>
- </tr>
- <td>
- <tr>
- <td></td>
- <td><input type="Submit"></td>
- </tr>
- </table>
- </form>
- """
- ]
-
- result.append(self.text_standard_footer())
- return 200, "text/html", None, result
-
- def serve_cgi(self, operations, path, valuemap):
- result = [
- self.text_standard_header(path),
- "<h4>Path</h4><p>%s" % path,
- "<h4>Parameters</h4><p>",
- ]
-
- for key, value in valuemap.iteritems():
- result.append("%s: %s<br>" % ( key, value ))
-
- result.append(self.text_standard_footer())
- return 200, "text/html", None, result
-
- #
- # creating it will register it
- #
- ToolTesting()
-